package com.pan.common.interview.spring;

/**
 * @author by panstark
 * @description
 * @notice
 * @date 2020/12/28
 */
public class SpringInfo {

    /**
     *
     * IOC:
     *  控制反转
     *  Inversion of Control
     *
     *
     *  依赖注入：
     *  依赖注入（Dependency Injection，简称DI）
     *
     */

    /**
     * beanDefinition
     * 定义bean
     *
     * beanDefinitionRegistry
     * 使得bean可以被注入
     *
     * BeanDefinitionMap为一个ConcurrentHashMap
     */

    /**
     * BeanFactory 最核心的接口
     * 提供IOC的配置机制
     * 包含bean的各种定义，以便实例化bean
     * 建立bean之间的依赖关系
     * bean生命周期的控制
     */

    /**
     * applicationContext
     * BeanFactory 是Spring框架的基础设施，面向Spring
     * ApplicationContext面向使用Spring框架的开发者（继承了多个接口）
     *   1、BeanFactory 可以管理、装配bean
     *   2、ResourcePatternResolver：能够实现加载资源
     *   3、MessageSource：能够实现国际化等功能
     *   4、ApplicationEventPublisher：能够注册监听器，实现监听机制
     */

    /**
     * 最核心的方法：
     * refreshContext
     */

    /**
     * spring 5个作用域
     *  1、singleton
     *  2、prototype
     *  3、request
     *  4、session
     *  5、globalSession
     */
}
